package com.linked.pay.pay.service;

import com.linked.pay.pay.bean.param.PayingParam;
import com.linked.pay.pay.bean.po.PayInfoPO;
import com.linked.universal.bean.pay.param.WaitingPayCreateParam;
import com.linked.universal.bean.pay.result.PayDetailResult;
import lombok.NonNull;

/**
 * @author :dbq
 * @date : 2023/3/2 14:25
 * @description : desc
 */
public interface IPayHandleService {
    PayInfoPO createWaitingPay(WaitingPayCreateParam param) throws Exception;

    PayInfoPO findPayInfo(String payId) throws Exception;

    boolean paying(PayingParam param) throws Exception;

    PayDetailResult queryPayDetail(String payId) throws Exception;

    Integer queryPayStatusByPayId(@NonNull String payId);

    boolean cancelPayBill(@NonNull String payId) throws Exception;

    boolean applyRefund(PayInfoPO payInfo) throws Exception;
}
